iT邦幫忙

2021 iThome 鐵人賽

DAY 25
0
自我挑戰組

JAVA的實作與應用系列 第 25

Day 25 constructors、this、static

  • 分享至 

  • xImage
  •  

constructors :
Java 中建立物件需要建構子,如果類別沒有定義建構子,編譯器就會提供一個預設的建構子,我們可以使用建構子在定義類別時進行物件的初始化,如果有需要的話,一個類別可以有多個構造函數。
創建一個建構子:假設在程式裡將x , y 輸入為 10 , 20

Step1 我們會先在物件導向的class裡面private x , y,並定義為int。
並public a , b,讓x = a, y = b
https://ithelp.ithome.com.tw/upload/images/20211007/20140456EvtDbCAx0P.png

Step2 在main方法裡new 一個object建構子,並直接把要輸入x , y的數
寫在建構子後的括弧,如下圖所示:
https://ithelp.ithome.com.tw/upload/images/20211007/20140456rn8cav8DwR.png

This :
在寫程式時,難免會遇到建構式參數與物件資料成員同名,此時我們可以利用
This來區別,而this可以用在沒有static的任何地方。也可以使用 this() 來調用同一個建構子中的另一個建構子。
上一個建構子的例子,如果不想要多定義函數a , b的話,this就派上用場,
因為說穿了a就是x,b就是y,但我們不會這樣寫:
https://ithelp.ithome.com.tw/upload/images/20211007/20140456o62LX5ohJU.png

正確寫法如下:
https://ithelp.ithome.com.tw/upload/images/20211007/201404568Hzh2AwIYN.png

Static :
用static修飾過的屬性是存放在靜態區域,並且在一開始就被載入記憶體,用static就不可以用this。

以下有一個計算兩點間距離的例子,用this及static兩種寫法,差別如下:
This:站在某個點身上去呼叫另一個點來計算
https://ithelp.ithome.com.tw/upload/images/20211007/20140456wWrJKl0zeu.png

Static:直接給兩點first、second去計算。
https://ithelp.ithome.com.tw/upload/images/20211007/20140456LQwqK61WVg.png


上一篇
Day 24 Encapsulation
下一篇
Day 26 Singleton Pattern、UML
系列文
JAVA的實作與應用30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言